C语言中 a==(b<c),a 等于哪个呀?

来源:百度知道 编辑:UC知道 时间:2024/05/19 04:17:30
C语言中 a==(b<c),
是a是否等于b
还是a是否等于c
头昏呼呼的,运算符的优先级到底是怎么回事,能给详细解说下吗?

a的值不受 a==(b<c) 的影响
在这里是判断 a 与 b<c的结果(1或0,真或假) 是否相等

(b < c)如果成立值是1 否则是0

然后再判断a的值是否和(b < c)的值相等

如果b<c a就等于 1
如果b>c a就等于0

(b<c)的返回值为1或0 。
然后再判断a是否和1或0相等。

运算符的优先级遇到括号还是得乖乖让路的

C++ 运算符优先级列表 c语言的操作符共有15个优先级,如下:
Operators Associativity
() [] -> . left to right
! ~ ++ -- + - * (type) sizeof right to left
* / % left to right
+ - left to right
<< >> left to right
< <= > >= left to right
== != left to right
& left to right
^ left to right
| left to right
&& left to right
|| left to right
?: right to left
= += -= *= /= %= &= ^= |= <<= >>= right to left
, left to right
优先级从上到下依次递减,最上面具有最高的优先级,逗号操作符具有最低的优先级。

所以小于号的优先级要高于判等符号,所以如果b<c,那么(b<c)的值就为1,否则为0
这时候a的值应该是一直的,判断其是否于(b<c)得到的值相等